﻿Imports Capa_de_Acceso_a_Datos

Public Class frmCargaDebitos

    Public PresentacionId As Integer
    Public Modo As String

    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        LimpiarCampos()
    End Sub

    Private Sub btnSeleccionar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSeleccionar.Click
        frmSeleccionarPresentacion.frmLlamada = Me.Name
        frmSeleccionarPresentacion.ShowDialog()
    End Sub

    Private Sub frmCargaDebitos_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        frmDebitos.Visible = True
        Me.Dispose()
    End Sub

    Private Sub frmCargaDebitos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Modo = "Modificacion" Then
            CargarDebitoSeleccionado()
            Me.Text = "Modificar débito"
        ElseIf Modo = "Visualizacion" Then
            CargarDebitoSeleccionado()
            Me.Text = "Visualizar débito"
            DeshabilitarCampos()
        Else
            'Modo Inserción
            PresentacionId = -1
        End If
    End Sub

    Private Sub DeshabilitarCampos()
        txtAno.Enabled = False
        txtFarmacia.Enabled = False
        txtImporte.Enabled = False
        txtMes.Enabled = False
        txtOS.Enabled = False
        txtMotivo.Enabled = False

        btnGuardar.Visible = False
        btnCancelar.Visible = False
        btnSeleccionar.Visible = False

    End Sub


    Private Sub CargarDebitoSeleccionado()
        txtAno.Text = frmDebitos.DebitoSeleccionado.Ano
        txtMes.Text = frmDebitos.DebitoSeleccionado.Mes
        txtFarmacia.Text = frmDebitos.DebitoSeleccionado.Farmacia
        txtOS.Text = frmDebitos.DebitoSeleccionado.ObraSocialXPlan
        txtImporte.Text = frmDebitos.DebitoSeleccionado.Importe
        txtMotivo.Text = frmDebitos.DebitoSeleccionado.Motivo
        PresentacionId = frmDebitos.DebitoSeleccionado.PresentacionId
    End Sub

    Private Sub btnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardar.Click
        If CamposCompletos() Then
            If Modo = "Modificacion" Then
                DebitoDAO.actualizarDebito(frmDebitos.DebitoSeleccionado.Id, CDbl(txtImporte.Text), txtMotivo.Text, PresentacionId)
            Else
                'Modo Inserción
                DebitoDAO.insertarDebito(CDbl(txtImporte.Text), txtMotivo.Text, PresentacionId)
                registrarMovimiento(PresentacionId, CDbl(txtImporte.Text), txtMotivo.Text)
                LimpiarCampos()
            End If

            MsgBox("El débito se ha guardado con éxito", MsgBoxStyle.Information)
        Else
            MsgBox("Por favor complete todos los campos", MsgBoxStyle.Information)
        End If
    End Sub

    Private Sub registrarMovimiento(ByVal PresentacionId As Integer, ByVal importeDebito As Double, ByVal motivo As String)
        Dim dt As DataTable = PresentacionDAO.obtenerPresentaciones(PresentacionId)
        Dim farmaciaId As Integer = dt.Rows(0)("FarmaciaId")
        Dim tipoDebito As Integer = 2
        CuentaCorrienteDAO.CuentaCorrienteInsertarMovimiento(farmaciaId, tipoDebito, 0, importeDebito, Today(), "Debito por " + motivo)
    End Sub


    Private Function CamposCompletos() As Boolean
        Dim completos As Boolean = True

        If txtAno.Text = "" Or txtImporte.Text = "" Then
            completos = False
        End If
        Return completos
    End Function

    Private Sub Salir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Salir.Click
        frmDebitos.Visible = True
        Me.Dispose()
    End Sub

    Private Sub LimpiarCampos()
        txtAno.Text = ""
        txtMes.Text = ""
        txtOS.Text = ""
        txtFarmacia.Text = ""
        txtMotivo.Text = ""
        txtImporte.Text = ""
    End Sub

End Class